package com.desktopmng.orm;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@SuppressWarnings("serial")
@Entity
@Table(name = "CALENDAR")
public class CalendarPO implements Serializable {

	@Id
	@Column(name = "Id")
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long id;
	
	@Column(name = "UserId", length = 32, nullable = true, unique = false)
	private String userId;
	
	/**
	 * 主题
	 */
	@Column(name = "Subject", length = 2000, nullable = true, unique = false)
	private String subject;
	
	/**
	 * 地点
	 */
	@Column(name = "Location", length = 200, nullable = true, unique = false)
	private String location;
	
	/**
	 * 时区
	 */
	@Column(name = "TimeZone", length = 11, nullable = true, unique = false)
	private int timeZone;
	
	/**
	 * 说明
	 */
	@Column(name = "Description", length = 500, nullable = true, unique = false)
	private String description;
	
	/**
	 * 日程类型
	 */
	@Column(name = "CalendarType", length = 4, nullable = true, unique = false)
	private int calendarType = 1;
	
	/**
	 * 开始时间
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "StartTime", nullable = false)
	private Date startTime;
	
	/**
	 * 结束时间
	 */
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "EndTime", nullable = false)
	private Date endTime;
	
	/**
	 * 是否全天日程
	 */
	@Column(name = "IsAllDayEvent", length = 4, nullable = false, unique = false)
	private int isAllDayEvent = 0;
	
	/**
	 * 是否有附件
	 */
	@Column(name = "HasAttachment", length = 4, nullable = false, unique = false)
	private int hasAttachment = 0;
	
	/**
	 * 分类
	 */
	@Column(name = "Category", length = 400, nullable = true, unique = false)
	private String category;
	
	/**
	 * 实例类型
	 */
	@Column(name = "InstanceType", length = 4, nullable = false, unique = false)
	private int instanceType;
	
	@Column(name = "Attendees", length = 500, nullable = true, unique = false)
	private String attendees;
	
	@Column(name = "AttendeeNames", length = 500, nullable = true, unique = false)
	private String attendeeNames;
	
	@Column(name = "OtherAttendee", length = 500, nullable = true, unique = false)
	private String otherAttendee;
	
	@Column(name = "UPAccount", length = 100, nullable = true, unique = false)
	private String upAccount;
	
	@Column(name = "UPName", length = 100, nullable = true, unique = false)
	private String upName;
	
	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "UPTime", nullable = false)
	private Date upTime;
	
	@Column(name = "RecurringRule", length = 1000, nullable = true, unique = false)
	private String recurringRule;

	public Long getId() {
		return id;
	}

	public void setId(Long id) {
		this.id = id;
	}
	
	public String getUserId() {
		return userId;
	}

	public void setUserId(String userId) {
		this.userId = userId;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getLocation() {
		return location;
	}

	public void setLocation(String location) {
		this.location = location;
	}

	public int getTimeZone() {
		return timeZone;
	}

	public void setTimeZone(int timeZone) {
		this.timeZone = timeZone;
	}

	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	public int getCalendarType() {
		return calendarType;
	}

	public void setCalendarType(int calendarType) {
		this.calendarType = calendarType;
	}

	public Date getStartTime() {
		return startTime;
	}

	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}

	public Date getEndTime() {
		return endTime;
	}

	public void setEndTime(Date endTime) {
		this.endTime = endTime;
	}

	public int getIsAllDayEvent() {
		return isAllDayEvent;
	}

	public void setIsAllDayEvent(int isAllDayEvent) {
		this.isAllDayEvent = isAllDayEvent;
	}

	public int getHasAttachment() {
		return hasAttachment;
	}

	public void setHasAttachment(int hasAttachment) {
		this.hasAttachment = hasAttachment;
	}

	public String getCategory() {
		return category;
	}

	public void setCategory(String category) {
		this.category = category;
	}

	public int getInstanceType() {
		return instanceType;
	}

	public void setInstanceType(int instanceType) {
		this.instanceType = instanceType;
	}

	public String getAttendees() {
		return attendees;
	}

	public void setAttendees(String attendees) {
		this.attendees = attendees;
	}

	public String getAttendeeNames() {
		return attendeeNames;
	}

	public void setAttendeeNames(String attendeeNames) {
		this.attendeeNames = attendeeNames;
	}

	public String getOtherAttendee() {
		return otherAttendee;
	}

	public void setOtherAttendee(String otherAttendee) {
		this.otherAttendee = otherAttendee;
	}

	public String getUpAccount() {
		return upAccount;
	}

	public void setUpAccount(String upAccount) {
		this.upAccount = upAccount;
	}

	public String getUpName() {
		return upName;
	}

	public void setUpName(String upName) {
		this.upName = upName;
	}

	public Date getUpTime() {
		return upTime;
	}

	public void setUpTime(Date upTime) {
		this.upTime = upTime;
	}

	public String getRecurringRule() {
		return recurringRule;
	}

	public void setRecurringRule(String recurringRule) {
		this.recurringRule = recurringRule;
	}
}
